package ch01.text00.tx04;

import java.lang.reflect.Method;
import java.util.Scanner;

public class MainText {
    public static void main(String[] args) {
        // 五、使用反射机制来实现用户输入一个年份，判断是闰年还是平年
        Scanner sc = new Scanner(System.in);

        // 获取年份
        int yearInput = sc.nextInt();

        try {
//            // 通过反射获取 Scanner 类的构造方法
//            Constructor<Scanner> constructor = Scanner.class.getConstructor(java.io.InputStream.class);
//            // 通过反射实例化 Scanner，传入 System.in 作为参数
//            Scanner sc = constructor.newInstance(System.in);
//            // 获取 Scanner 类的 nextInt 方法
//            Method nextIntMethod = Scanner.class.getMethod("nextInt");
//            // 通过反射调用 nextInt 方法
//            int yearInput = (int) nextIntMethod.invoke(sc);
            // 使用反射获取 Year 类
            Class<?> yearClass = Class.forName("ch01.text00.tx04.Year");

            // 创建 Year 类的实例
            Object yearObj = yearClass.getConstructor(int.class).newInstance(yearInput);

            // 获取 isLeapYear 方法
            Method isLeapYearMethod = yearClass.getMethod("isLeapYear");

            // 调用 isLeapYear 方法判断是否为闰年
            boolean isLeapYear = (boolean) isLeapYearMethod.invoke(yearObj);

            // 输出结果
            if (isLeapYear) {
                System.out.println(yearInput + " 是闰年");
            } else {
                System.out.println(yearInput + " 不是闰年");
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
